package po

import "time"

type Repo struct {
	Id       int64     `json:"id"`
	Name     string    `xorm:"name" json:"name"`
	Describe string    `xorm:"describe" json:"describe"`
	Version  int64     `xorm:"version" json:"version"`
	Kind     string    `xorm:"kind" json:"kind"`
	Url      string    `xorm:"url" json:"url"`
	AuthType string    `xorm:"auth_type" json:"auth_type"`
	Created  time.Time `xorm:"created" json:"created"`
	Updated  time.Time `xorm:"updated" json:"updated"`
	Deleted  time.Time `xorm:"deleted" json:"deleted"`
}

func (obj Repo) TableName() string {
	return "srvp_repo"
}

type RepoToUser struct {
	Id      int64  `json:"id"`
	UserId  string `xorm:"user_id" json:"user_id"`
	GroupId int64  `xorm:"group_id" json:"group_id"`
	RepoId  int64  `xorm:"repo_id" json:"repo_id"`
}

func (obj RepoToUser) TableName() string {
	return "srvp_repo_to_user"
}

type RepoToConfig struct {
	Id       int64 `json:"id"`
	RepoId   int64 `xorm:"repo_id" json:"repo_id"`
	ConfigId int64 `xorm:"config_id" json:"config_id"`
}

func (obj RepoToConfig) TableName() string {
	return "srvp_repo_to_config"
}

type RepoWithUserSnap struct {
	Id       int64     `json:"id"`
	Name     string    `xorm:"name" json:"name"`
	Describe string    `xorm:"describe" json:"describe"`
	Version  int64     `xorm:"version" json:"version"`
	Kind     string    `xorm:"kind" json:"kind"`
	Url      string    `xorm:"url" json:"url"`
	User     string    `xorm:"user" json:"user"`
	AuthType string    `xorm:"auth_type" json:"auth_type"`
	UserId   string    `xorm:"user_id" json:"user_id"`
	GroupId  int64     `xorm:"group_id" json:"group_id"`
	Created  time.Time `xorm:"created" json:"created"`
	Updated  time.Time `xorm:"updated" json:"updated"`
	Deleted  time.Time `xorm:"deleted" json:"deleted"`
}

func (obj RepoWithUserSnap) TableName() string {
	return "srvp_repo_user_snap"
}
